package config

type Mysql struct {
	Host         string `mapstructure:"host" json:"host" yaml:"host"`                         // 服务器地址:端口
	Port         string `mapstructure:"port" json:"port" yaml:"port"`                         //:端口
	Dbname       string `mapstructure:"dbName" json:"dbName" yaml:"dbName"`                   // 数据库名
	Username     string `mapstructure:"user" json:"user" yaml:"user"`                         // 数据库用户名
	Password     string `mapstructure:"password" json:"password" yaml:"password"`             // 数据库密码
	Config       string `mapstructure:"config" json:"config" yaml:"config"`                   // 高级配置
	MaxIdleConns int    `mapstructure:"maxIdleConns" json:"maxIdleConns" yaml:"maxIdleConns"` // 空闲中的最大连接数
	MaxOpenConns int    `mapstructure:"maxOpenConns" json:"maxOpenConns" yaml:"maxOpenConns"` // 打开到数据库的最大连接数
	Retry        int    `mapstructure:"retry" json:"retry" yaml:"retry"`                      // 重试次数
	RetryDelay   int    `mapstructure:"retryDelay" json:"retryDelay" yaml:"retryDelay"`       // 重试间隔
}

func (m *Mysql) Dsn() string {
	return m.Username + ":" + m.Password + "@tcp(" + m.Host + ":" + m.Port + ")/" + m.Dbname + "?" + m.Config
}
